package com.tdam2014.grupo11.util;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.tdam2014.grupo11.entidades.Usuario;

public class Conexion extends SQLiteOpenHelper {

	private static final String TAG = Conexion.class.getName();

	private static final String DB_NOMBRE = "utn_repasa";

	private static final int VERSION = 5;

	private final String TABLA_USUARIOS = "CREATE TABLE usuarios ( "
			+ "id INT NOT NULL, " + "nombre VARCHAR(20) NOT NULL, "
			+ "clave VARCHAR(20) NOT NULL, " + "PRIMARY KEY (id)" + ")";

	private final String TABLA_PARTIDAS = "CREATE TABLE partidas ("
			+ "id INT NOT NULL," + "fecha_hora_creacion DATETIME NOT NULL,"
			+ "nro_pregunta_actual INT NOT NULL," + "ronda_actual INT NULL,"
			+ "PRIMARY KEY (id)" + ")";

	private final String TABLA_PREGUNTAS = "CREATE TABLE preguntas ("
			+ "id INT NOT NULL," + "descripcion  VARCHAR(100),"
			+ "nro_pregunta_actual INT NOT NULL," + "id_partida INT NOT NULL,"
			+ "PRIMARY KEY (id)" + ")";

	private final String TABLA_RESPUESTAS = "CREATE TABLE respuestas ("
			+ "id INT NOT NULL," + "id_pregunta INT NOT NULL,"
			+ "descripcion VARCHAR(100)," + "correcta BOOLEAN,"
			+ "PRIMARY KEY (id)" + ")";

	private final String TABLA_CALIFICACIONES = "CREATE TABLE calificaciones ("
			+ "id INT NOT NULL," + "id_pregunta INT NOT NULL,"
			+ "calificacion INT NOT NULL," + "PRIMARY KEY (id)" + ")";

	private final String DB_CREACION = TABLA_USUARIOS + "; " + TABLA_PARTIDAS
			+ "; " + TABLA_PREGUNTAS + "; " + TABLA_RESPUESTAS + "; "
			+ TABLA_CALIFICACIONES;

	public Conexion(Context context) {
		super(context, DB_NOMBRE, null, VERSION);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL(DB_CREACION);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("DROP TABLE IF EXISTS usuarios");
		db.execSQL(DB_CREACION);
	}

	public void insertarUsuario(Usuario usuario) {
		SQLiteDatabase db = getWritableDatabase();
		ContentValues cv = new ContentValues();
		cv.put("id", usuario.getId());
		cv.put("nombre", usuario.getNombre());
		cv.put("clave", usuario.getClave());
		db.insert("usuarios", null, cv);
	}

	public Usuario consultarUsuario() {
		SQLiteDatabase db = getWritableDatabase();
		Cursor c = db.query("usuarios",
				new String[] { "id", "nombre", "clave" }, null, null, null,
				null, null, null);
		Usuario usuario = null;
		if (c.moveToFirst()) {
			int indiceId = c.getColumnIndex("id");
			int indiceNombre = c.getColumnIndex("nombre");
			int indiceClave = c.getColumnIndex("clave");
			usuario = new Usuario(c.getInt(indiceId),
					c.getString(indiceNombre), c.getString(indiceClave));
		}
		return usuario;
	}

}
